This application discloses an invention which is related, generally and in various embodiments, to a system and method for testing causality of tabulated S-parameters.
It is known to utilize scattering parameters (S-parameters) to describe the electrical behavior of linear electrical networks. In the S-parameter approach, the electrical network is treated as a black box which contains various interconnected electrical circuit components which interact with other electrical circuits through ports. The electrical network can be represented by a square matrix of complex numbers (its S-parameter matrix) which can be used to calculate the network's response to signals applied to the ports.
It is also known to test S-parameters for the proper cause/effect relationship (causality). With respect to such electrical networks, a basic requirement of causality is that after a stimulus has been applied to the electrical network, the electrical network's response to the applied stimulus must occur after the application of the stimulus. During transient simulation of S-parameters, a macromodel approximating the S-parameters is utilized. However, if the S-parameters are actually noncausal, the simulation results obtained using the macromodel will likely not accurately reflect the actual electrical behavior of the network.
Testing causality of tabulated frequency data is based on the property that only a causal frequency response is invariant upon applying the generalized Hilbert transform (GHT). However, this property has been difficult to verify for tabulated data (data known for finite number of frequencies in a finite bandwidth), because the GHT requires knowledge of frequency response at all frequencies in infinite bandwidth.
A first known method, described in the publication “Robust causality characterization via generalized dispersion relations,” IEEE Trans. Advanced Packaging, Vol. 31, No. 3, August 2008 authored by P. Triverio and S. Grivet-Talocia (hereinafter “the Triverio method”) removed this difficulty by proposing an algorithm that accounted for errors due to both finite bandwidth (corresponding error is referred to as the truncation error) and finite number of frequencies (referred to as the discretization error). Specifically, it provided a closed-form expression for a tight upper bound for the truncation error, and this bound can be used to arbitrarily control the truncation error. It accounted for the discretization error by accounting for the error in the numerical integration, used in the evaluation of the GHT.
However, the Triverio method is not clear about another source of discretization error: the interpolation error. Each tabulated frequency response needs to be interpolated because of the continuous nature of the integration in the GHT. This interpolation introduces an additional error in the GHT calculation on top of the numerical integration error. When this interpolation error is not accounted for, the bound for the discretization error is underestimated, which can result in a false positive outcome (i.e., a causal tabulated frequency response falsely declared as noncausal).
A second known method, described in the publication “Analytical integration-based causality checking of tabulated S-parameters,” IEEE Conference on Electrical Perf. of Electronic Packag., October 2010 authored by S. Asgari, S. N. Lalgudi, and M. Tsuk (hereinafter “the Asgari method”), includes the contribution from interpolation error in the discretization error, through a different formulation. In this formulation, tabulated frequency response is first interpolated through cubic-splines, and the test on tabulated frequency response is converted to an equivalent test on the interpolation function. Because of this equivalency and the polynomial nature of the interpolating function, a closed-form expression for the GHT is derived in terms of the spline coefficients. As a result, numerical integration needed in the Triverio method to evaluate the GHT is avoided, making the interpolation error the only contribution to the discretization error. The discretization error bound is, then, calculated similar to the Triverio method by varying the interpolation functions in place of the numerical integration rules.
However, the closed-form expressions for numerical GHT in the Asgari method can produce unbounded values if tabulated frequencies are highly nonuniformly spaced, like in logarithmically-spaced frequencies.
The formulation associated with the Asgari method is now described in the context of determining whether or not a given frequency response is causal. Consider a frequency response H(jω) of a linear time-invariant (LTI) system that is only known for tabulated frequencies {fk}Nfk=1, where f1=0, fk<fk+1, and Nf is the total number of frequencies. The symbol ω is the angular frequency, where ω=2πf.
The solution to the problem of determining whether or not H(jω) is casual is based on the generalized Hilbert transform of H(jω):
                                                        H              n                        ⁡                          (                              j                ⁢                                                                  ⁢                ω                            )                                =                                                    ℒ                H                            ⁡                              (                                  j                  ⁢                                                                          ⁢                  ω                                )                                      +                                                                                ∏                                          q                      =                      1                                        n                                    ⁢                                                                          ⁢                                      (                                          ω                      -                                                                        ω                          _                                                q                                                              )                                                                    j                  ⁢                                                                          ⁢                  π                                            ⁢                                                          ⁢                              ∫                                                      -                                                                                            H                          ⁡                                                      (                                                          j                              ⁢                                                                                                                          ⁢                                                              ω                                ′                                                                                      )                                                                          -                                                                              ℒ                            H                                                    ⁡                                                      (                                                          j                              ⁢                                                                                                                          ⁢                                                              ω                                ′                                                                                      )                                                                                                                                                ∏                                                      q                            =                            1                                                    n                                                ⁢                                                                                                  ⁢                                                  (                                                                                    ω                              ′                                                        -                                                                                          ω                                _                                                            q                                                                                )                                                                                                      ⁢                                                            ⅆ                                                                                          ⁢                                              ω                        ′                                                                                    ω                      -                                              ω                        ′                                                                                                                                ,                            (        1        )            where n is the number of subtraction points, and {ωq}n q=1 are the subtraction points spread over the interval Ω=[−ωmax, ωmax], where ωmax=2πfmax, and fmax=fNf. In equation (1), the symbol f denotes the integral according to the Cauchy principal value. The term LH(jω) in equation (1) is the Lagrange interpolation polynomial for H(jω):
                                          ℒ            H                    ⁡                      (                          j              ⁢                                                          ⁢              ω                        )                          =                              ∑                          q              =              1                        n                    ⁢                                          ⁢                                    H              ⁡                              (                                  j                  ⁢                                                                          ⁢                                                            ω                      _                                        q                                                  )                                      ⁢                                          ∏                                                      p                    =                    1                                                        p                    ≠                    q                                                  n                            ⁢                                                          ⁢                                                                    ω                    -                                                                  ω                        _                                            p                                                                                                                          ω                        _                                            q                                        -                                                                  ω                        _                                            p                                                                      .                                                                        (        2        )            
Using the GHT, a procedure to detect noncausality can be devised: If and only if H(jω) is causal, Hn(jω) from equation (1) is equal to H(jω); thus, if the magnitude of the errorΔn(jω)=Hn(jω)−H(jω)  (3)is zero, then H(jω) is declared causal; else, it is declared noncausal.
However, as only tabulated values of H(jω) are available, Hn(jω) cannot be computed exactly; only an approximation, say
{tilde over (H)}n(jω), to it can be. As a result, the magnitude of the error{tilde over (Δ)}n(jω)={tilde over (H)}n(jω)−H(jω)  (4)can be nonzero even for a causal H, causing a confusion about the causality of H(jω). Therefore, the above detection procedure has to be modified to make a detection based on {tilde over (Δ)}n(jω).
Any procedure to test causality of tabulated data should account for two sources of errors: (a) the (truncation) error due to not knowing H(jωk) outside Ω (outside the interval Ω=[−ωmax, ωmax]), and (b) the (discretization) error due to not having continuous values of H(jωk) inside Ω (inside the interval Ω=[−ωmax, ωmax]). The procedure to account for the truncation error is the same as that of the Triverio method and is described next. However, unlike the Triverio method, the Asgari method works with a simplified version of equation (1). It can be shown that equation (1) is same as
                                          H            n                    ⁡                      (                          j              ⁢                                                          ⁢              ω                        )                          =                                            ℒ              H                        ⁡                          (                              j                ⁢                                                                  ⁢                ω                            )                                +                                                                      ∏                                      q                    =                    1                                    n                                ⁢                                                                  ⁢                                  (                                      ω                    -                                                                  ω                        _                                            q                                                        )                                                            j                ⁢                                                                  ⁢                π                                      ⁢                          ∫                                                -                                                            H                      ⁡                                              (                                                  j                          ⁢                                                                                                          ⁢                                                      ω                            ′                                                                          )                                                                                                            ∏                                                  q                          =                          1                                                n                                            ⁢                                                                                          ⁢                                              (                                                                              ω                            ′                                                    -                                                                                    ω                              _                                                        q                                                                          )                                                                                            ⁢                                                                            ⅆ                                                                                          ⁢                                              ω                        ′                                                                                    ω                      -                                              ω                        ′                                                                              .                                                                                        (        5        )            As H(jω) is not known outside Ω, it is only possible to evaluate equation (5) within Ω. If Ĥn(jω) denotes the result of this evaluation, then
                                                        H              ^                        n                    ⁡                      (                          j              ⁢                                                          ⁢              ω                        )                          =                                            ℒ              H                        ⁡                          (                              j                ⁢                                                                  ⁢                ω                            )                                +                                                                      ∏                                      q                    =                    1                                    n                                ⁢                                                                  ⁢                                  (                                      ω                    -                                                                  ω                        _                                            q                                                        )                                                            j                ⁢                                                                  ⁢                π                                      ⁢                                          ∫                Ω                            ⁢                                                -                                                            H                      ⁡                                              (                                                  j                          ⁢                                                                                                          ⁢                                                      ω                            ′                                                                          )                                                                                                            ∏                                                  q                          =                          1                                                n                                            ⁢                                                                                          ⁢                                              (                                                                              ω                            ′                                                    -                                                                                    ω                              _                                                        q                                                                          )                                                                                            ⁢                                                                            ⅆ                                                                                          ⁢                                              ω                        ′                                                                                    ω                      -                                              ω                        ′                                                                              .                                                                                        (        6        )            The truncation error, denoted as En(jω), is the difference between Ĥn(jω) and Hn(jω), i.e.,
                                          E            n                    ⁡                      (                          j              ⁢                                                          ⁢              ω                        )                          =                                                            H                ^                            n                        ⁡                          (                              j                ⁢                                                                  ⁢                ω                            )                                -                                    H              n                        ⁡                          (                              j                ⁢                                                                  ⁢                ω                            )                                                                                                                    ⁢                  =                                                                      ∏                                      q                    =                    1                                    n                                ⁢                                                                  ⁢                                  (                                      ω                    -                                                                  ω                        _                                            q                                                        )                                                            j                ⁢                                                                  ⁢                π                                      ⁢                                          ∫                                  Ω                  C                                            ⁢                                                                    -                                          H                      ⁡                                              (                                                  j                          ⁢                                                                                                          ⁢                                                      ω                            ′                                                                          )                                                                                                                        ∏                                              q                        =                        1                                            n                                        ⁢                                                                                  ⁢                                          (                                                                        ω                          ′                                                -                                                                              ω                            _                                                    q                                                                    )                                                                      ⁢                                                                            ⅆ                                                                                          ⁢                                              ω                        ′                                                                                    ω                      -                                              ω                        ′                                                                              .                                                                                        (        7        )            This error can be controlled by increasing or decreasing n.
For the discretization error, the Asgari method follows a procedure similar to the Triverio method. Knowing a functional form of H(jω) is necessary to compute equation (6). Because only tabulated values can be and are known, the H(jωk's) have to be interpolated (or approximated) between ωk's. If H(jω) denotes this approximation, then the resulting evaluation of equation (6) gives the quantity {tilde over (H)}n(jω) in equation (4). The discretization error, denoted as Dn(jω), is defined as it was in the Triverio method:Dn(jω)={tilde over (H)}n(jω)−Ĥn(jω).  (8)The error {tilde over (Δ)}n(jω) in equation (4) can be shown to be{tilde over (Δ)}n(jω)=Δn(jω)+En(jω)+Dn(jω).  (9)In the Triverio method, closed-form expression for tightest upper bound, denoted as Tn(ω) for |En(jω)| is utilized. The expression for this bound is shown below
                                                        T              n                        ⁡                          (              ω              )                                =                                    1              π                        ⁢                                          ∑                                  q                  =                  1                                n                            ⁢                                                          ⁢                                                [                                                            ln                      ⁢                                                                                                                                                            ω                              max                                                        -                                                                                          ω                                _                                                            q                                                                                                                                                                                                                                              ω                              max                                                        -                            ω                                                                                                                                          -                                                                                            (                                                      -                            1                                                    )                                                n                                            ⁢                      ln                      ⁢                                                                                                                                                            ω                              max                                                        +                                                                                          ω                                _                                                            q                                                                                                                                                                                                                                              ω                              max                                                        +                            ω                                                                                                                                                          ]                                ×                                                      ∏                                                                  p                        =                        1                                                                    p                        ≠                        q                                                              n                                    ⁢                                                                                                          ω                        -                                                                              ω                            _                                                    p                                                                                                                                                                                    ω                          _                                                q                                            -                                                                        ω                          _                                                p                                                                                                                                ,                            (        10        )            
If {tilde over (D)}n(ω) denotes an estimate for |Dn(jω)|, then per the Triverio method, H(jω) is declared as noncausal if|{tilde over (Δ)}n(jωk)|>Tn(ωk)+{tilde over (D)}n(ωk)∃k.  (11)Since the test is with regard to an amplitude, say A, the right hand side of inequality (11), denoted as Etotn(ωk), should first be made less than or equal to A, i.e.,Etotn(ωk)=Tn(ωk)+{tilde over (D)}n(ωk)≦A ∀k.  (12)If inequality (12) is not met, then the frequency steps in the tabulated data are not small enough to check for inequality (11); in this event, the data should be regenerated with subsequently smaller frequency steps until inequality (12) is satisfied.
In the Asgari method, the quantity {tilde over (D)}n(ω) is computed by subtracting {tilde over (H)}n(jω)'s from two different interpolation functions. That is,{tilde over (D)}n(ω)≈|{tilde over (H)}nμ1(jω)−{tilde over (H)}nμ2(jω)|,  (13)where μ1 and μ2 are two different interpolating functions. The quantity {tilde over (H)}n(jω) can be computed without numerical integration if H(jω) is approximated as a piecewise polynomial:
                                                        H              ⁡                              (                                  j                  ⁢                                                                          ⁢                  ω                                )                                      ≈                                          H                _                            ⁡                              (                                  j                  ⁢                                                                          ⁢                  ω                                )                                              =                                    ∑                              k                =                                  -                                      N                    f                                                                                                N                  f                                -                1                                      ⁢                                                  ⁢                                                                                ∑                                          l                      =                      0                                        L                                    ⁢                                                                          ⁢                                                                                    a                                                  k                          ,                          l                                                                    ⁡                                              (                                                  ω                          -                                                      ω                            k                                                                          )                                                              l                                                                    ︸                                                                                    H                        _                                                                    (                        k                        )                                                              ⁡                                          (                                              j                        ⁢                                                                                                  ⁢                        w                                            )                                                                                  ⁢                                                1                  Ω                                k                            ⁢                              (                ω                )                                                    ,                            (        14        )            where the symbol L is the maximum order of the piecewise polynomial (e.g., L=3 for cubic splines), the symbol Ωk denotes the interval [ωk, ωk+1], the symbol 1Ωk(ω) is the indicator function of ω, defined as one for ω∈Ωk and as zero elsewhere, and αkl∈C is the spline coefficient corresponding to the kth interval and the lth power of ω. When H(jω) from equation (13) is substituted for H(jω) in equation (6), and the terms in the resulting equation are separated using partial fractions and subsequently analytically integrated, one gets Hn(jω):
                                                                        H                ~                            n                        ⁡                          (                              j                ⁢                                                                  ⁢                ω                            )                                =                                                    ℒ                                  H                  _                                            ⁡                              (                                  j                  ⁢                                                                          ⁢                  ω                                )                                      +                                          1                                  j                  ⁢                                                                          ⁢                  π                                            ⁢                                                ∑                                      k                    =                                          -                                              N                        f                                                                                                                        N                      f                                        -                    1                                                  ⁢                                  (                                                                                                                                          H                            _                                                                                (                            k                            )                                                                          ⁡                                                  (                                                      j                            ⁢                                                                                                                  ⁢                            ω                                                    )                                                                    ⁢                                                                                          ⁢                                              𝕃                        ⁡                                                  (                                                      ω                            ,                                                          ω                              k                                                        ,                                                          ω                                                              k                                +                                1                                                                                                              )                                                                                      -                                                                  ∑                                                  q                          =                          1                                                n                                            ⁢                                                                                          ⁢                                                                                                                                  H                              _                                                                                      (                              k                              )                                                                                ⁡                                                      (                                                          j                              ⁢                                                                                                                          ⁢                                                              ω                                q                                                                                      )                                                                          ⁢                                                  𝕃                          ⁡                                                      (                                                                                          ω                                q                                                            ,                                                              ω                                k                                                            ,                                                              ω                                                                  k                                  +                                  1                                                                                                                      )                                                                          ⁢                                                                              ∏                                                                                          p                                =                                1                                                                                            p                                ≠                                q                                                                                      n                                                    ⁢                                                                                    ω                              -                                                              ω                                p                                                                                                                                                    ω                                q                                                            -                                                              ω                                p                                                                                                                                                                                          )                                                                    ,                            (        15        )                                                          ⁢        where                                                                                      ⁢                              𝕃            ⁡                          (                              ω                ,                                  ω                  k                                ,                                  ω                                      k                    +                    1                                                              )                                =                      ln            ⁢                                                                                                                      ω                      k                                        -                    ω                                                                              ω                                              k                        +                        1                                                              -                    ω                                                                              .                                                          (        16        )            In the Asgari method, μ1 is chosen as cubic spline interpolation, and μ2 as piecewise cubic Hermite interpolation polynomial (PCHIP).
There are drawbacks to the Asgari method. Computing H(k)(jω) in equation (15) requires extrapolation outside Ωk if ω is not ∈Ωk, as can be observed from the definition of H(k)(jω) in equation (14). This extrapolation can sometimes result in unbounded values for {tilde over (H)}n(jω) in equation (15). This drawback is the consequence of using a closed form expression-based formulation along with a piecewise function. Also, because of the limited accuracy of piecewise polynomials, resolution of the causality checker is limited for given tabulated data. Thus, in view of the above, the overall effectiveness of the Asgari method is less than desired.